package com.kaifamiao.demo.d0725;

public class Demo01 {

    // 类方法  static 方法
    public static void say(){}

    // 实例方法  non-static 方法
    public void run(){}

    /*
        方法的重载:
            在同一个类中，有多个方法名称一样的方法, 这些方法互为重载
            1. 同类
            2. 同名
            3. 参数列表不同 (个数不同，类型不同, 顺序不同)
            2 同 3 不同
            调用时，根据传递的实参列表决定调用哪个方法
     */
    public int sum(int a, int b){
        System.out.println("sum(int a, int b)");
        return a + b;
    }

    public double sum(int a, double b){
        return a + b;
    }

    public double sum(double a, int b){
        System.out.println("sum(double a, int b)");
        return b + a;
    }


    public int sum(int a, int b, int c){
        System.out.println("sum(int a, int b, int c)");
        return a + b + c;
    }

    public double sum(double a, double b){
        System.out.println("sum(double a, double b)");
        return a + b;
    }

    public int sum(int... nums){
        System.out.println("sum(String name, int... nums)");
        int sum = 0;
        for (int i = 0; i < nums.length; i ++){
            sum += nums[i];
        }
        return sum;
    }

    public static void main(String[] args) {
        say();
        Demo01 demo01 = new Demo01();
        // 方法的结果作为参数
//        System.out.println(demo01.sum(1, 2));
//        demo01.sum(2, 3, 4);
        demo01.sum(1.0, 2);

    }

}
